package com.hxhy.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.hxhy.bean.Account;
import com.hxhy.bean.BElectronic;
import com.hxhy.bean.Taxrate;

public interface InvoiceMapper {

	List<Map<String, Object>> execSelectListMap(@Param("sql") String sql);

	List<String> execSelectListString(@Param("sql") String sql);

	String execSelectString(@Param("sql") String sql);

	Integer execSelectInt(@Param("sql") String sql);

	int updateSql(@Param("sql") String sql);

	/**
	 * @开票报文记录
	 * @param lsh
	 * @param flag
	 * @param data
	 */
	void log(@Param("lsh") String lsh, @Param("flag") String flag, @Param("data") String data);

	/**
	 * @初始化税收及税率
	 */
	List<Taxrate> taxrate();

	/**
	 * @获取未开票的发票预存信息
	 */
	List<BElectronic> ykpList();
	
	/**
	 * @获取已开票账目数
	 */
	Integer fpCount(String ids);

	/**
	 * @获取已开票未更新发票信息
	 */
	List<BElectronic> kpList();

	/**
	 * @获取发票信息
	 */
	BElectronic getInvoiceByFPH(@Param("fph") String fph, @Param("bbh") String bbh, @Param("kplx") String kplx,
			@Param("fplx") String fplx);
	
	/**
	 * @获取发票信息
	 */
	BElectronic getInvoiceByLSH(@Param("lsh") String lsh, @Param("kplx") String kplx);

	/**
	 * @新增发票信息
	 */
	int insert(BElectronic be);

	/**
	 * @更新发票信息
	 */
	int update(BElectronic be);

	/**
	 * @拼接账目id
	 */
	String accountids(@Param("taskid") String taskid, @Param("houseid") String houseid);

	/**
	 * @清除账目发票信息
	 */
	int clearInvoiceById(@Param("ids") String ids);

	/**
	 * @修改账目表发票信息
	 */
	int replaceInvoice(BElectronic be);

	/**@通过账目id获取账目信息
	 * @param ids
	 * @return
	 */
	List<Account> getAccount(@Param("ids") String ids);
	
	/**
	 * @通过账目id获取未开发票账目信息
	 */
	List<Account> getFpAccount(@Param("ids") String ids);

	/**
	 * @通过账目id获取未开发票账目信息(汇总)
	 */
	List<Account> getFpAccountGroup(@Param("ids") String ids);

}
